package com.yntx.usercenter.authorization.service;

import com.yntx.usercenter.authorization.dto.PermissionDTO;
import com.yntx.usercenter.authorization.dto.PermissionDeleteDTO;
import com.yntx.usercenter.authorization.dto.PermissionUpdateDTO;
import com.yntx.usercenter.authorization.vo.PermissionVO;

import java.util.List;

/**
 * 许可服务
 *
 * @author wuzhengyu
 * @date 2023/05/09 21:48
 */
public interface PermissionService {

    /**
     * 按角色列表
     *
     * @param permissionId 权限id
     * @return {@link List}<{@link PermissionVO}>
     */
    List<PermissionVO> listByRole(Long permissionId);

    /**
     * 列表
     *
     * @param permissionDto 许可dto
     * @return {@link List}<{@link PermissionVO}>
     */
    List<PermissionVO> list(PermissionDTO permissionDto);

    /**
     * 添加
     *
     * @param req 要求事情
     * @return {@link PermissionVO}
     */
    PermissionVO add(PermissionDTO req);

    /**
     * 删除
     *
     * @param dto dto
     * @return boolean
     */
    boolean delete(PermissionDeleteDTO dto);

    /**
     * 更新
     *
     * @param dto dto
     * @return boolean
     */
    boolean update(PermissionUpdateDTO dto);

}
